中間人 (MitM) 攻擊是一種主要的網絡威脅,它的名字來源于攻擊者將自己插入兩個通信方之間的事實。如果所有通信都在到達目的地的途中通過攻擊者,這會導致攻擊者在消息到達預期收件人之前丟棄、閱讀或修改消息。
中間人 (MitM) 攻擊的工作原理
要執行中間人攻擊,攻擊者需要完成兩個目標。首先,他們需要以某種方式將自己插入到通信中,以使他們能夠攔截前往目的地的流量。攻擊者可以實現此目的的一些方法包括:
- 惡意 Wi-Fi:所有 W-Fi 流量都流經無線接入點 (AP),因此控制無線 AP 并誘騙用戶連接的攻擊者可以攔截他們的所有流量。
- ARP 欺騙:地址解析協議 (ARP) 用于將 IP 地址映射到 MAC 地址。通過使用虛假的 ARP 消息,攻擊者將目標的 IP 地址映射到他們的 MAC 地址,從而導致目標的流量被發送給他們。
- DNS 欺騙:域名系統(DNS)將域名映射到 IP 地址。使用虛假 DNS 記錄毒化 DNS 緩存可能會導致到目標域的流量被路由到攻擊者的 IP 地址。
- BGP 劫持:邊界網關協議 (BGP) 用于識別具有到特定 IP 地址的最佳路由的自治系統 (AS)。BGP 劫持涉及發布虛假路由以導致某些流量流經攻擊者的系統。
一旦處于通信中間,攻擊者需要能夠讀取消息;但是,很大一部分互聯網流量是使用 SSL/TLS 加密的。如果流量被加密,那么讀取和修改消息需要能夠欺騙或破壞 SSL/TLS 連接。
這可以通過幾種不同的方式來實現。如果攻擊者可以欺騙用戶接受站點的虛假數字證書,那么攻擊者將能夠解密客戶端的流量并在將其發送到服務器之前對其進行讀取或修改。或者,攻擊者可以使用 SSL 剝離或降級攻擊來破壞 SSL/TLS 會話的安全性。
中間人攻擊示例
中間人攻擊可以通過多種方式進行,這取決于被攻擊的協議和攻擊者的目標。例如,當通信流未加密并且攻擊者自然位于目標流量將采用的路徑上時,執行中間人攻擊會更容易。
場景 1:易受攻擊的物聯網/移動應用程序
普通用戶已接受過有關如何根據 URL 欄中的 https 和鎖定圖標確定其 Web 瀏覽會話是否加密的教育。但是,使用移動應用程序和物聯網(IoT) 設備驗證數據流是否已加密更加困難。這些安全性較差并使用未加密的協議(例如 Telnet 或 HTTP)進行通信的情況并不少見。
如果是這種情況,那么攻擊者可以輕松讀取并可能修改移動應用程序或物聯網設備與服務器之間流動的數據。通過使用無線接入點或某種形式的欺騙,攻擊者可以將自己插入通信流中,以便所有流量都流經它們。由于這些協議缺乏對數據完整性或真實性的內置檢查,因此攻擊者可以隨意更改流量的內容。
場景 2:假數字證書
SSL/TLS 旨在通過為網絡流量提供機密性、完整性和身份驗證來防止中間人攻擊。但是,它依賴于用戶只接受特定域的有效數字證書。如果攻擊者可以誘騙用戶訪問網絡釣魚站點,說服他們接受假證書,或者破壞公司用于SSL 檢查的數字證書,那么這些保護措施就會被破壞。
在這種情況下,攻擊者維護兩個使用 SSL/TLS 加密的單獨會話。一方面,它連接到客戶端,同時偽裝成服務器并使用其偽造的 SSL 證書。另一方面,它偽裝成連接到合法服務器的客戶端。由于攻擊者控制了兩個會話,他們可以從一個會話中解密數據,檢查和修改它,然后為另一個會話重新加密。
中間人攻擊防護
中間人攻擊依賴于攻擊者能夠攔截和讀取流量。防止這種情況發生的一些Internet 安全最佳實踐包括:
- 謹防公共 Wi-Fi:公共 Wi-Fi上的流量全部通過 AP,可能處于攻擊者的控制之下。僅連接到已知且受信任的 Wi-Fi 網絡。
- 使用 VPN:虛擬專用網絡 (VPN) 對遠程用戶或站點與 VPN 端點之間的流量進行加密。這可以防止中間人攻擊者讀取或修改截獲的流量。
- 驗證數字證書:合法網站應始終具有在瀏覽器中顯示為有效的數字證書。信任可疑證書可能會導致中間人攻擊。